package xyz.honeysuccess.service;

import org.springframework.web.multipart.MultipartFile;
import xyz.honeysuccess.entity.FileData;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Map;

/**
 * @author Honey
 * @date 2021/12/21
 */
public interface FileDataService {

    /**
     * 保存文件接口
     * @param multipartFile 文件
     * @return 返回文件的uuid
     * @throws IOException 写文件时可能出现的异常
     */
    String saveFileData(MultipartFile multipartFile) throws IOException;

    /**
     * 根据 UUID 获取文件的元数据
     * @param uuid UUID
     * @return 返回元数据对象
     */
    FileData getFileDateByUUID(String uuid);

    /**
     * 根据 UUID 下载文件
     * @param uuid UUID
     * @param response 响应报文
     * @return 返回 map<String, File> 集合
     */
    Map<String, Object> downloadFile(String uuid, HttpServletResponse response);


}
